#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define M 3
	struct notas{
		float mat;
		float fis;
		float prog;
		};
struct alumno{
		int legajo;
		char nombre[50];
		struct notas alumnos;
		float promedio;
		};

float ValidarRango (float, float);
void MejorPromedio (struct alumno[]);
void main ()
	{
	int opcion=9;
	int i;
	struct alumno persona[3];
	while(opcion!=4)
		{
		clrscr();
		printf("Menu\n");
		printf("1- Carga\n");
		printf("2- promedio\n");
		printf("3- Mejor\n");
		printf("4- Salir\n");
		printf("elija opcion: ");
		scanf("%d", &opcion);
		switch(opcion)
			{
			case 1:
				for(i=0; i<M; i++)
					{
					clrscr();
					printf("Ingrese legajo: \n");
					scanf("%d", &persona[i].legajo);

					printf("Ingrese alumno \n");
					fflush(stdin);
					gets(persona[i].nombre);

					printf("Ingrese nota de matematica\n");
					persona[i].alumnos.mat=ValidarRango(1, 10);

					printf("Ingrese nota de fisica\n");
					persona[i].alumnos.fis=ValidarRango(1, 10);

					printf("Ingrese nota de programacion\n");
					persona[i].alumnos.prog=ValidarRango(1, 10);
					}
				break;
			case 2:
				for(i=0;i<M;i++)
					{
					persona[i].promedio=(persona[i].alumnos.mat + persona[i].alumnos.fis + persona[i].alumnos.prog)/3;
					printf ("El promedio del alumno %s es: %f\n", persona[i].nombre, persona[i].promedio);
					}
				getch();
				break;
			case 3:
				MejorPromedio(persona);
				break;
			case 4:
				break;
			}
		}
	}
float ValidarRango(float min, float max)
	{
	float x;
	scanf ("%f", &x);
	while (x < min||x > max)
		{
		printf("Reingrese nota valida 1 a 10:\n");
		scanf("%f", &x);
		}
	return x;
	}
void MejorPromedio(struct alumno persona[])
	{
	int i, cont=0;
	struct alumno aux;
	for (i=0;i<M;i++)
		{
		if( i==0 || aux.promedio < persona[i].promedio )
			{
			aux=persona[i];
			}
		}
	printf("El mejor promedio es de %s con %f.\n", aux.nombre, aux.promedio);
	printf("alumnos que tuvieron la misma nota fueron ");
	for(i=0;i<M;i++)
		{
		if(aux.promedio == persona[i].promedio)
			{
			printf(",%s", persona[i].nombre);
			cont++;
			}
		}
	  /* aca intente hacer que si ninguno tenia el mismo promedio
	  aparezca ninguno, pero desisto de la idea.
		if(cont==0)
			{
			printf(",ninguno");
			}
	  */
	getch();
	}



